home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / pctecap.arc / PRTSC.ASM < prev    next >
Assembly Source File  |  1986-03-15  |  2KB  |  61 lines

  1. page 60,120
  2. title    PRTSC.ASM 1.01
  3. ;--------------------------------------------------------------
  4. ;  Program     : Toggles print screen feature on/off
  5. ;  Version    : 1.01
  6. ;  System      : IBM PC DOS 2.00
  7. ;  Language    : IBM 8088 Macro Assembler
  8. ;  Author      : Tom Swan  P.O. Box 206  Lititz, PA 17543
  9. ;--------------------------------------------------------------
  10. ;01-Aug-84 -ts- start date
  11. ;
  12. cseg    segment para public 'CODE'
  13.     assume    cs:cseg,ds:cseg
  14. ;
  15. ;----- Equates
  16. ;
  17. cr    equ    13            ;ASCII carriage return
  18. lf    equ    10            ;ASCII line feed
  19. romdata    equ    50h            ;seg address of ROM BIOS data
  20. prtstat    equ    0            ;offset of status byte
  21. ;
  22. ;----- Start of Program
  23. ;
  24.     org    100h            ;standard .COM entry point
  25. prtsc:
  26.     mov    dx,offset progid    ;print program identification
  27.     mov    ah,9            ;ah=DOS print string$
  28.     int    21h            ;call DOS to print string
  29.     push    ds            ;save data segment register
  30.     mov    ax,romdata        ;set ds=ROM BIOS
  31.     mov    ds,ax            ; data segment address
  32.     xor    byte ptr ds:[prtstat],1    ;toggle status on(0) / off(1)
  33.     mov    bl,ds:[prtstat]        ;bl = current status
  34.     pop    ds            ;restore saved ds register
  35. ;
  36. ;----- Display status ON or OFF
  37. ;
  38.     mov    dx,offset statstr    ;print status string
  39.     mov    ah,9            ;ah=DOS print string$
  40.     int    21h            ;call DOS to print string
  41.     mov    dx,offset staton    ;prepare to print "on"
  42.     or    bl,bl            ;test current status
  43.     jz    prtsc1            ;jump if on (0)
  44.     mov    dx,offset statoff    ;else print "off"
  45. prtsc1:
  46.     mov    ah,9            ;ah=DOS print string$
  47.     int    21h            ;call DOS to print string
  48.     int    20h            ;return to DOS
  49. page
  50. ;
  51. ;----- Strings
  52. ;
  53. progid    db    'PRTSC 1.01',cr,lf
  54.     db    '(C) 1984 by Tom Swan',cr,lf,lf,'$'
  55. statstr    db    'PRINT SCREEN is ','$'
  56. staton    db    'on',cr,lf,'$'
  57. statoff db    'off',cr,lf,'$'
  58. ;
  59. cseg    ends                ;end of segment
  60.     end    prtsc            ;end program
  61.